Vystup fce jako TStrings

Otázka od: Petr K.

25. 10. 2002 22:55

Mam takovy maly problem

potrebuju aby vystup z fce byl typu TStrings
vse si udelam program se zkompiluje ale kdyz najede na radek
kde mam <promenna typu Tstrings>.Clear tak program zhavaruje
hlaskou Access violation at adress 77D345A2 in module 'user32.dll', Write
adress 00465D54.

Nevite nekdo jak to vyresit - jde mi o to ze vystup z funkce potrebuju
nacist do
ListBoxu

Diky Petr


---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002

Odpovedá: TVRZ Miroslav jr.

25. 10. 2002 22:58

ListBox.Items.AddStrings(tvoje_promenna)

zkus a uvidime - dej vedet jak dopadlo

MI'RA
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
Behalf Of Petr K.
Sent: Friday, October 25, 2002 11:48 PM
To: Delphi clexpert
Subject: Vystup fce jako TStrings

Mam takovy maly problem
potrebuju aby vystup z fce byl typu TStrings
vse si udelam program se zkompiluje ale kdyz najede na radek
kde mam <promenna typu Tstrings>.Clear tak program zhavaruje
hlaskou Access violation at adress 77D345A2 in module 'user32.dll', Write
adress 00465D54.
Nevite nekdo jak to vyresit - jde mi o to ze vystup z funkce potrebuju
nacist do
ListBoxu
Diky Petr

---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002

Odpovedá: Ing. Pavel Žilinec

25. 10. 2002 23:41

Muzes si predat primo ListBox jako parametr a plnit ho. Take muzes
dany TStrings definovat uvnitr fce, ktera bude typu string a pak
udelat:

ListBox.Items.CommaText := VratSeznamHodnotOddelenyCarkami;

Urcite je mnohem vice moznosti, ale tyto snad budou stacit.

--------
ing. Pavel Zilinec
MailTo:zilinec@email.cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju

PK> Mam takovy maly problem

PK> potrebuju aby vystup z fce byl typu TStrings
PK> vse si udelam program se zkompiluje ale kdyz najede na radek
PK> kde mam <promenna typu Tstrings>.Clear tak program zhavaruje
PK> hlaskou Access violation at adress 77D345A2 in module 'user32.dll', Write
PK> adress 00465D54.

PK> Nevite nekdo jak to vyresit - jde mi o to ze vystup z funkce potrebuju
PK> nacist do
PK> ListBoxu

PK> Diky Petr

Odpovedá: ing. Jan Fiala

26. 10. 2002 5:30

Lepsi je pouzit proceduru, ktere predas parametr TStrings.

procedure NaplnListBox(lb: TStrings);
begin
  lb.Clear;
  { a pak si naplnis polozky }
end;

volani je pak:
NaplnListBox(ListBox.Items);

--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

25.10.2002 Petr K.:
> Mam takovy maly problem

> potrebuju aby vystup z fce byl typu TStrings
> vse si udelam program se zkompiluje ale kdyz najede na radek
> kde mam <promenna typu Tstrings>.Clear tak program zhavaruje
> hlaskou Access violation at adress 77D345A2 in module 'user32.dll', Write
> adress 00465D54.

> Nevite nekdo jak to vyresit - jde mi o to ze vystup z funkce potrebuju
> nacist do
> ListBoxu

Odpovedá: Petr Fejfar

26. 10. 2002 9:43

From: "Petr K." <xdelphi@seznam.cz>

> kde mam <promenna typu Tstrings>.Clear tak program
> zhavaruje hlaskou Access violation at adress 77D345A2
> in module 'user32.dll', Write adress 00465D54.

Nejspis proto, ze je <promenna typu Tstrings> neinicializovana.
Predpokladam, ze kdyz uz ses
rozhodl pro problematicke reseni s vracenim
instance tridy, tak ze si tu instanci v te funkci
taky vytvoris napr.

begin
  Result := TStringList.Create;
  ...
end;

a pak ji ve volajicim kodu nezapomenes uvolnit.
(a taky snad vis, ze TStrings je abtraktni trida,
kterou nemuzes instanciovat).



HTH, pf